package com.quick.develop.flowable.domain.task;

import com.quick.develop.flowable.domain.page.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

import static com.quick.develop.framework.utils.DateUtils.YYYY_MM_DD_HH_MM_SS;

/**
 * @author GJH
 * @description 外部待办任务查询请求对象
 * @date 2022/12/29
 */
@Data
@ApiModel("管理后台 - 流程任务外部查询的 TODO 待办的分页 Request VO")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BpmTaskTodoExternalReqVO extends PageParam {

    @ApiModelProperty(value = "处理人")
    @NotNull(message = "任务处理人不能为空")
    private String assignee;

    @ApiModelProperty(value = "流程任务名称")
    private String name;

    @ApiModelProperty(value = "查询类型", notes = "待办、候选", example = "todo/candidate")
    private String option;

    @ApiModelProperty(value = "流程分类")
    private String processCategory;

    @ApiModelProperty(value = "流程分类")
    private List<String> processCategories;

    @ApiModelProperty(value = "流程标题")
    private String processName;

    @ApiModelProperty(value = "所属流程名称")
    private String processDefinitionName;

    @ApiModelProperty(value = "流程发起人")
    private String startUser;

    @ApiModelProperty(value = "开始的创建收间")
    @DateTimeFormat(pattern = YYYY_MM_DD_HH_MM_SS)
    private Date beginCreateTime;

    @ApiModelProperty(value = "结束的创建时间")
    @DateTimeFormat(pattern = YYYY_MM_DD_HH_MM_SS)
    private Date endCreateTime;

}
